Current client-side applications and related architectures provide limited ability to deploy an application to a device (i.e. mobile phone) which can be deployed and used by many users, and yet flexible enough to vary the visual characteristics, the functional aspects, and the flow or of the application to each individual user.
As seen in FIG. 1, a standard deployed client-side system 5 includes an architecture 20 of a client device and application with two primary inputs. The first input is the user 10. The user 10 input effects the presentation 22 of the application, which has user interface components 24 that presents data from the physical user and offers ways for the user to respond. The presentation 22 also includes the user interface process components 26.
The second input is an external system 14 that is made up of one or more devices that collect data (i.e. sensing devices) or service consumers 16. The external systems 14 are transferred into the service layer 30 using the service interfaces 32 (i.e. an API to mobile phone or library). The services layer 30 then decouples the information and translates a message using the message types 34. After the message type 34 decouples the information it is placed into the system 5 to enable logical decision making by the app. The services layer 30 has the ability to pass the decoupled information to the business layer 40 or the data layer 50. The business layer 40 includes the application facade 42 on the client or user device 20, and the business workflow 44, business components 46 and business entities 48. The data layer 50 is composed of data access components 52, data helpers/utilities 54, and service agents and tools 56. There is local data 58 stored on the client device and application 20.
The cross-cutting section 60 of the device and application are aspects needed across the entire system 5. The cross-cutting section 60 includes security 62, configuration/operational management 64, communication 66, and regulatory 68. These layers 62, 64, 66, 68 can hold non-functional requirements, that are dependent on the area in which the application is being utilized or the functional needs of the device 20. Security 62 is what is needed for the application and its data in-flight and at-rest to enforce policies, privacy and authentication rules. Configuration/Operational management 64 is what is needed to run the application across different regions, deployments endpoints and platforms utilized for distributions and defines defaults for requirements. Communication 66 is related to application interface requirements and what is needed for transport and application level communication in controlling the bandwidth, retries and authentication needs of the system, in addition this may be the user facing language the device displays, depending on the operational managements determination about location. Regulatory 68 may be the local regulation and policies enforcement as required to be followed in the specific region the application is operating in which can define default policies during initial use and be dynamically adjusted based on movement by the user through different geographies.
In addition, the client-loaded equipment and application 20 may interact with a remote exchange 19 between the deployed application and the remote server infrastructure 70. The remote server infrastructure 70 may consist of multiple endpoints including one or more remote data sources 71 and web services 75. The remote data sources layer 71 gives data access 73 to external data storage 70 which is used as a data lake cloud-based storage embodying the local data 58 across multiple deployments of the client-loaded equipment and application 20. The web service layer 75 may pass through the service agents/tools 56 of the application and is often seen as the notification and service agent to manage data across deployments and the availability of the remote data sources 71. The remote server's web services 75 is often an external system or data synchronization 79 from the back-end side of the cloud-based server used in logging, analytics, and data synchronization across deployments. Web Services 75 includes services 77 and synchronization 79.
However, current systems often provide a single implementation specific application for a given approach leaving little room for adaptation of the client application based on the user. This results in a multiple deployments of single implementation specific applications albeit to a common remote server infrastructure, sometimes known as suite of applications. These applications generate many requests to the same server, utilize large sections of code that is duplicated across deployments with no provision to minimize server calls, storage space, and consolidation needs for storage space, processing and bandwidth. Therefore, technical improvements and solutions are needed to overcome these technical problems while accommodating the evolving needs of users in order to better manage memory, storage, processing, network utilization, quality, risk of security exploits and usability through a managed footprint in terms of scope and scale. The systems and methods of the present invention provide such improvements.